//
//  BBTUIOEventDelegate.h
//  BBTouch
//
//  Created by ben smith on 7/22/08.
//  This file is part of BBTouch.
//
//  BBTouch is free software: you can redistribute it and/or modify
//  it under the terms of the GNU Lesser General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.

//  BBTouch is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU Lesser General Public License for more details.

//  You should have received a copy of the GNU Lesser General Public License
//  along with BBTouch.  If not, see <http://www.gnu.org/licenses/>.
// 
//  Copyright 2008 Ben Britten Smith ben@benbritten.com .
//

#import <Cocoa/Cocoa.h>
#import "BBSimpleEventDelegate.h"

@class BBOSCMessage;
@class BBOSCSender;

@interface BBTUIOEventDelegate : BBSimpleEventDelegate {
	NSMutableArray * livingBlobs; // for all 'alive' blobs at this time
	NSMutableArray * movingBlobs; // for any blobs that moved in this frame
	
	unsigned int frameNumber; // at 30 FPS should be long enough to go 4.5 years before it rolls over 
	BBOSCMessage * sourceMessage; // seems silly to build this each time
	BBOSCSender * tuioSender;
	
	NSRect meshBounds;
}

@property (retain) BBOSCSender * tuioSender;
@property (assign) NSRect meshBounds;

+ (BBTUIOEventDelegate*)eventDelegateWithHostName:(NSString*)host portNumber:(int)portNumber;
- (BBOSCMessage*)aliveMessage;
- (BBOSCMessage*)frameSequenceMessage;
- (BBOSCMessage*)setMessageForBlobEvent:(BBBlobEvent*)anEvent;
- (id) init;
- (int)indexOfBlobWithID:(int)blobId;
- (void)blobDown:(BBBlobEvent*)theBlobEvent; ;
- (void)blobDragged:(BBBlobEvent*)theBlobEvent;
- (void)blobMovementFinished;;
- (void)blobUp:(BBBlobEvent*)theBlobEvent;;

// 10 methods



@end
